package com.ruoyi.ring.mapper;

import com.ruoyi.ring.domain.RingExerciseDetail;
import com.ruoyi.ring.domain.dto.GeneralSecondDTO;
import com.ruoyi.ring.domain.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 锻炼详情Mapper接口
 * 
 * @author liuwp
 * @date 2025-09-25
 */
public interface RingExerciseDetailMapper 
{
    /**
     * 查询锻炼详情
     * 
     * @param id 锻炼详情主键
     * @return 锻炼详情
     */
    public RingExerciseDetail selectRingExerciseDetailById(Long id);

    /**
     * 查询锻炼详情列表
     * 
     * @param ringExerciseDetail 锻炼详情
     * @return 锻炼详情集合
     */
    public List<RingExerciseDetail> selectRingExerciseDetailList(RingExerciseDetail ringExerciseDetail);

    /**
     * 可以业务主键查询一条锻炼详情
     *
     * @param ringExerciseDetail 锻炼详情
     * @return 锻炼详情集合
     */
    public RingExerciseDetail selectOneRingExerciseDetail(RingExerciseDetail ringExerciseDetail);

    /**
     * 新增锻炼详情
     * 
     * @param ringExerciseDetail 锻炼详情
     * @return 结果
     */
    public int insertRingExerciseDetail(RingExerciseDetail ringExerciseDetail);

    /**
     * 修改锻炼详情
     * 
     * @param ringExerciseDetail 锻炼详情
     * @return 结果
     */
    public int updateRingExerciseDetail(RingExerciseDetail ringExerciseDetail);

    /**
     * 条件修改锻炼详情
     *
     * @param ringExerciseDetail 锻炼详情
     * @param ringExerciseDetail 锻炼详情条件
     * @return 结果
     */
    public int updateRingExerciseDetailCondition(@Param("ringExerciseDetail") RingExerciseDetail ringExerciseDetail, @Param("ringExerciseDetailCondition") RingExerciseDetail ringExerciseDetailCondition);

    /**
     * 删除锻炼详情
     * 
     * @param id 锻炼详情主键
     * @return 结果
     */
    public int deleteRingExerciseDetailById(Long id);

    /**
     * 条件删除锻炼详情
     *
     * @param ringExerciseDetail 锻炼详情
     * @return 结果
     */
    public int deleteRingExerciseDetailByCondition(RingExerciseDetail ringExerciseDetail);

    /**
     * 批量删除锻炼详情
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteRingExerciseDetailByIds(Long[] ids);


    List<GeneralGroupVO> queryExerciseList(@Param("secondDTO") GeneralSecondDTO secondDTO);

    List<RingExerciseDetail> querySportHeartRate(@Param("secondDTO") GeneralSecondDTO secondDTO);

    List<Date> queryDateList(@Param("secondDTO") GeneralSecondDTO secondDTO);
}
